package com.dycx.user.vo;

import com.dycx.common.annotation.SensitivityEncrypt;
import com.dycx.common.enums.SensitivityTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

@EqualsAndHashCode(callSuper = true)
@Data
public class UserVO extends UserInfoVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Integer uid;

    /**
     * 用户名
     */
    private String username;

    /**
     * 手机号
     */
    @SensitivityEncrypt(type = SensitivityTypeEnum.PHONE)
    private String mobile;

    /**
     * 姓名
     */
    private String realName;

    /**
     * 身份证号
     */
    private String idCard;


    private String wxUnionId;

    private String wxMpOpenId;

    private String wxMiniOpenId;

    private String wxAppOpenId;

    /**
     * 分享人uid
     */
    private Integer shareUid;

    private Boolean isSeller;

    /**
     * 会员类型
     */
    private Integer vipType;

    /**
     * 会员过期时间
     */
    private LocalDateTime vipExpiredTime;

    /**
     * 会员等级
     */
    private Integer vipGrade;
    private String vipGradeName;

    /**
     * 代理等级
     */
    private Integer agencyGrade;
    private String agencyGradeName;
    private Integer agencyGradeRate;

    /**
     * 状态
     */
    private Boolean status;
    private String statusName;
    private String statusStyle;

    /**
     * 注册时间
     */
    private LocalDateTime createTime;

    private LocalDateTime updateTime;

    private Integer updateId;

    private String updateName;


    /**
     * 团队人数
     */
    private Integer teamUserNum;

    /**
     * 团队充值金额
     */
    private Integer teamUserMoney;
}
